/*************************************************
filename	: input_enums.h
author		: Stefan lulham
desc		: Contains input enums
*************************************************/
#ifndef D_INPUT_ENUMS_H
#define D_INPUT_ENUMS_H

namespace DelGE
{
	namespace Modules
	{
		namespace Input
		{
			enum KeyState
			{
				DelGE_KeyState_Up,
				DelGE_KeyState_Hit,
				DelGE_KeyState_Down,
				DelGE_KeyState_Pressed,

				DelGE_KeyState_Unknown
			};

			enum MouseCode
			{
				DelGE_Mouse_Left,
				DelGE_Mouse_Right,
				DelGE_Mouse_Middle,

				DelGE_Mouse_Unknown
			};

			enum KeyCode
			{
				DelGE_Key_Left				= 37,
				DelGE_Key_Up,
				DelGE_Key_Right,
				DelGE_Key_Down,

				DelGE_Key_Backspace			= 8,
				DelGE_Key_Tab,
				DelGE_Key_Clear				= 12,
				DelGE_Key_Enter,
				DelGE_Key_Escape			= 27,
				DelGE_Key_Space				= 32,
				DelGE_Key_PageUp,
				DelGE_Key_PageDown,
				DelGE_Key_End,
				DelGE_Key_Home,

				DelGE_Key_Select			= 41,
				DelGE_Key_Print,
				DelGE_Key_Screen			= 44,
				DelGE_Key_Insert,
				DelGE_Key_Delete,

				DelGE_Key_NumPad0			= 96,
				DelGE_Key_NumPad1,
				DelGE_Key_NumPad2,
				DelGE_Key_NumPad3,
				DelGE_Key_NumPad4,
				DelGE_Key_NumPad5,
				DelGE_Key_NumPad6,
				DelGE_Key_NumPad7,
				DelGE_Key_NumPad8,
				DelGE_Key_NumPad9,

				DelGE_Key_NumPadMultiply	= 106,
				DelGE_Key_NumPadAdd,
				DelGE_Key_NumPadSubtract	= 109,
				DelGE_Key_NumPadDecimal,
				DelGE_Key_NumPadDivide,

				DelGE_Key_F1				= 112,
				DelGE_Key_F2,
				DelGE_Key_F3,
				DelGE_Key_F4,
				DelGE_Key_F5,
				DelGE_Key_F6,
				DelGE_Key_F7,
				DelGE_Key_F8,
				DelGE_Key_F9,
				DelGE_Key_F10,
				DelGE_Key_F11,
				DelGE_Key_F12,

				DelGE_Key_Tilde				= 192,
				DelGE_Key_Minus				= 189,
				DelGE_Key_Equals			= 187,

				DelGE_Key_OpenBracket		= 219,
				DelGE_Key_CloseBracket		= 221,
				DelGE_Key_Backslash			= 226,

				DelGE_Key_Semicolon			= 186,
				DelGE_Key_Quotes			= 222,

				DelGE_Key_Comma				= 188,
				DelGE_Key_Period			= 190,
				DelGE_Key_Slash,

				DelGE_Key_LeftShift			= 160,
				DelGE_Key_RightShift,
				DelGE_Key_LeftControl,
				DelGE_Key_RightControl,
				DelGE_Key_LeftAlt,
				DelGE_Key_RightAlt,
				DelGE_Key_LeftSystem		= 91,
				DelGE_Key_RightSystem,

				DelGE_Key_Num0				= 48,
				DelGE_Key_Num1,
				DelGE_Key_Num2,
				DelGE_Key_Num3,
				DelGE_Key_Num4,
				DelGE_Key_Num5,
				DelGE_Key_Num6,
				DelGE_Key_Num7,
				DelGE_Key_Num8,
				DelGE_Key_Num9,

				DelGE_Key_A					= 65,
				DelGE_Key_B,
				DelGE_Key_C,
				DelGE_Key_D,
				DelGE_Key_E,
				DelGE_Key_F,
				DelGE_Key_G,
				DelGE_Key_H,
				DelGE_Key_I,
				DelGE_Key_J,
				DelGE_Key_K,
				DelGE_Key_L,
				DelGE_Key_M,
				DelGE_Key_N,
				DelGE_Key_O,
				DelGE_Key_P,
				DelGE_Key_Q,
				DelGE_Key_R,
				DelGE_Key_S,
				DelGE_Key_T,
				DelGE_Key_U,
				DelGE_Key_V,
				DelGE_Key_W,
				DelGE_Key_X,
				DelGE_Key_Y,
				DelGE_Key_Z,

				DelGE_Key_Unknown
			};
		}
	}
}

#endif